Er $_POST[] nødvendigt?

Tags:    php

Hey udviklere.

HVorfor er det egentlig, man skal bruge $_POST[] eller $_GET[]. Det virker jo fint uden.

Og skal man bruge:

$var = $_POST['var'];
eller
$_POST['var'] = $var;

Er der en forksel?

Mvh. Per Rødgaard



4 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato

$var = $_POST['navn']; Det vil hente variablet 'navn' fra den side der blev sendt fra. F.eks. en formular.

$_POST['navn'] = $var; ville ændre det variabel (navn) der blev sendt fra siden. Det burde ikke være muligt.


-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GED d- s: a--- C++ W++ w PS X+ tv+ b D G e- h! !r z--
------END GEEK CODE BLOCK------



Ja, det er som regel nødvendigt at benytte $_POST['var'], da den funktionalitet med at benytte $var direkte mange steder - af sikkerhedsmæssige årsager - er stået fra (det hedder Register Globals). Se evt. følgende doc:
http://dk2.php.net/register_globals
http://dk2.php.net/extract

Mikkel Meyer Andersen (mikl-dk)



Ud over den sikkerhedsrisiko der er ved at have register_globals slået til, som mikl-dk skriver om, giver den lidt længere skrivemetode bedre overblik, da det er muligt at se hvor variablen kommer fra. Hvis nogen fx spørger om noget her i forum, er det svært for andre at finde ud af hvad meningen med scriptet er, hvis den korte skrivemetode er brugt, og det er derved sværere at give et svar.

Og husk: sikkerhedsrisikoen bliver ikke mindre ved at lade være med at bruge den korte skrivemetode. Sikkerheden forbedres først, når MULIGHEDEN for at bruge den korte skrivemetode slås fra.




$_POST['navn'] = $var; ville ændre det variabel (navn) der blev sendt fra siden. Det burde ikke være muligt.


Jamen det er skam muligt... både med og uden register_globals... $_POST er bare et array som alle andre og kan, så snart parseneren er i gang, manipuleres som alle andre arrays...



t